package main

import "fmt"

func main() {
	//1、请求出一个数组里面元素的和以及这些的平均值。分别用for和for-range实现
	/*
		2、请求出一个数组的最大值，并得到对应的下标
			思路
				1、生命一个数组 var intArr[5] = [...]int {1,-1,12,65,11}
				2、假定第一个元素就是最大值，下标就0
				3、然后从从第二个元素开始循环比较，如果发现有更大，则交换
	*/

	//3、从数组[1,3,5,7,8] 中找出和为8的两个元素的下标分别为(0,3)

	//1、请求出一个数组里面元素的和以及这些的平均值。分别用for和for-range实现
	var intArr = [5]float64{3, 5, 8, 9, 12}
	var sum = 0.00
	var avg = 0.00
	for i := 0; i < len(intArr); i++ {
		sum += intArr[i]
	}
	avg = sum / float64(len(intArr))
	fmt.Printf("intArr:%v sum:%v avg:%v\n", intArr, sum, avg)

	sum = 0.00
	avg = 0.00
	for _, v := range intArr {
		sum += v
	}
	avg = sum / float64(len(intArr))
	fmt.Printf("intArr:%v sum:%v avg:%v\n", intArr, sum, avg)

	/*
		2、请求出一个数组的最大值，并得到对应的下标
			思路
				1、生命一个数组 var intArr[5] = [...]int {1,-1,12,65,11}
				2、假定第一个元素就是最大值，下标就0
				3、然后从从第二个元素开始循环比较，如果发现有更大，则交换
	*/
	var floatArr = [...]float64{11.11, 32.11, 88.67, 44.55, 22.21}
	var maxKey = 0
	var maxValue = 0.00
	for i := 0; i < len(floatArr); i++ {
		if floatArr[i] > maxValue {
			maxValue = floatArr[i]
			maxKey = i
		}
	}

	fmt.Printf("floatArr:%v max_value:%v max_key:%v \n", floatArr, maxValue, maxKey)

	//3、从数组[1,3,5,7,8] 中找出和为8的两个元素的下标分别为(0,3)和(1,2)
	var intArr3 = [5]int{1, 3, 5, 7, 8}
	for i := 0; i < len(intArr3); i++ {
		for j := i + 1; j < len(intArr3); j++ {
			if intArr3[i]+intArr3[j] == 8 {
				fmt.Printf("%v + %v = 8,a_key = %v,b_key = %v \n", intArr3[i], intArr3[j], i, j)
			}
		}
	}
}
